Software development kits (SDKs) allow software engineers to quickly develop applications for software packages, frameworks, or platforms. Generally speaking, an application will include a user interface component that receives user input and provides output. For example, the ADOBE® FLEX™ SDK may be used to construct applications to be executed using the ADOBE® FLASH® platform (each available from Adobe Systems Inc. of San Jose Calif.).
Regardless of the particular SDK that is used, certain complications can arise when developing software applications. For example, some software development platforms may introduce concepts that are unfamiliar to designers. For instance, designers may be unfamiliar with event-based program structures. In some such structures, user input events can be provided to functions termed “business logic” that determine what outputs (if any) are to be provided to the user interface and/or other components. For example, a SDK may specify a set of user interface components such as buttons, list boxes, text controls, charts, graphs, media components, menu controls, data components/bindings, and layout containers (e.g. grids, forms, boxes, etc.). Certain SDKS may provide a framework to relay data to and from web services, while others may allow construction of an application for use in a local environment.
The user interface may have many input/output components and may be intended for use with business logic methods that can provide multiple possible outcomes. The combination of a powerful interface, complex business logic, and nontraditional programming concepts may result in significant problems in developing applications in event-based software development environments, particularly with regard to debugging.